<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
    <th:block th:include="include :: header('定时任务列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
    <div class="row">
        <div class="col-sm-12 search-collapse">
            <form id="job-form">
                <div class="select-list">
                    <ul>
                        <li>
                            任务名称：<input type="text" name="job_name"/>
                        </li>
                        <li>
                            任务分组：
                        </li>
                        <li>
                            任务状态：
                        </li>
                        <li>
                            <a class="btn btn-primary btn-rounded btn-sm" id="searchButton"><i class="fa fa-search"></i>&nbsp;搜索</a>
                            <a class="btn btn-warning btn-rounded btn-sm" id="resetButton"><i class="fa fa-refresh"></i>&nbsp;重置</a>
                        </li>
                    </ul>
                </div>
            </form>
        </div>

        <div class="btn-group-sm" id="toolbar" role="group">
            <a class="btn btn-success" onclick="add()" data-role="monitor:job:add">
                <i class="fa fa-plus"></i> 新增
            </a>
            <a class="btn btn-primary single disabled" onclick="edit()" data-role="monitor:job:edit">
                <i class="fa fa-edit"></i> 修改
            </a>
            <a class="btn btn-danger multiple disabled" onclick="removeAll()" data-role="monitor:job:remove">
                <i class="fa fa-remove"></i> 删除
            </a>
            <a class="btn btn-info" onclick="javascript:jobLog()" data-role="monitor:job:detail">
                <i class="fa fa-list"></i> 日志
            </a>
        </div>
        <div class="col-sm-12 select-table table-striped">
            <table id="dataTable"></table>
        </div>
    </div>
</div>
<th:block th:include="include :: footer" />
<script type="text/javascript" th:inline="javascript">
    let $table;
    $(function() {
        loadData();
    });


    function loadData(){
        let options = {
            url: "/monitor/job/getPageList",
            sortName: "create_time",
            sortOrder: "desc",
            modalName: "任务",
            pageNumber: 1,                      // 初始化加载第一页，默认第一页,并记录
            pageSize: 10,                       // 每页的记录行数（*）
            pageList: "10, 25, 50, 100",        // 可供选择的每页的行数（*）
            queryParams: function (params) {
                let p = {
                    pageNumber: params.pageNumber,
                    pageSize: params.pageSize
                }
                return p;
            },
            columns: [
                {field: 'selectItem', checkbox: true},
                {field: 'jobId',title: '任务编号',align: 'center'},
                {field: 'jobName',title: '任务名称'},
                {field: 'jobGroup',title: '任务分组', align: 'center'},
                {field: 'cronExpression',title: '执行表达式'},
                {title: '任务状态',align: 'center',formatter: function (value, row, index) {
                        return statusTools(row);
                    }
                },
                {field: 'createTime',title: '创建时间',align: 'center',sortable: true},
                {title: '操作',align: 'center',formatter: function(value, row, index) {
                        //var actions = [];
                        //actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.job_id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
                        //actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.job_id + '\')"><i class="fa fa-remove"></i>删除</a> ');
                        //var more = [];
                        //more.push("<a class='btn btn-default btn-xs " + statusFlag + "' href='javascript:void(0)' onclick='run(" + row.job_id + ")'><i class='fa fa-play-circle-o'></i> 执行一次</a><br> ");
                        //more.push("<a class='btn btn-default btn-xs " + detailFlag + "' href='javascript:void(0)' onclick='$.operate.detail(" + row.job_id + ")' style='margin-top: 5px;'><i class='fa fa-search'></i>任务详细</a><br> ");
                        //more.push("<a class='btn btn-default btn-xs " + detailFlag + "' href='javascript:void(0)' onclick='jobLog(" + row.job_id + ")' style='margin-top: 5px;'><i class='fa fa-list'></i>调度日志</a>");
                        //actions.push('<a class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');
                        //return actions.join('');
                        return "";
                    }
                }]
        };
        $table=$('#dataTable').easyTable(options);
    }
    /* 调度任务状态显示 */
    function statusTools(row) {
        if (row.jobStatus == 1) {
            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="start(\'' + row.job_id + '\', \'' + row.job_group + '\')"></i> ';
        } else {
            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="stop(\'' + row.job_id + '\', \'' + row.job_group + '\')"></i> ';
        }
    }

    /* 立即执行一次 */
    function run(job_id) {
        $.modal.confirm("确认要立即执行一次任务吗？", function() {
            $.operate.post(prefix + "/run", { "job_id": job_id});
        })
    }

    /* 调度任务-停用 */
    function stop(job_id, job_group) {
        $.modal.confirm("确认要停用任务吗？", function() {
            $.operate.post(prefix + "/changeStatus", { "job_id": job_id, "job_group": job_group, "status": 1 });
        })
    }

    /* 调度任务-启用 */
    function start(job_id, job_group) {
        $.modal.confirm("确认要启用任务吗？", function() {
            $.operate.post(prefix + "/changeStatus", { "job_id": job_id, "job_group": job_group, "status": 0 });
        })
    }

    /* 调度日志查询 */
    function jobLog(jobId) {
        var url = ctx + 'monitor/jobLog';
        if ($.common.isNotEmpty(jobId)) {
            url += '?job_id=' + jobId;
        }
        $.modal.openTab("调度日志", url);
    }
</script>
</body>
</html>